package com.buwei.module.log.domain.event;

import java.time.LocalDateTime;

import com.buwei.infrastructure.domain.Event;
import com.fasterxml.jackson.annotation.JsonFormat;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.FieldDefaults;

@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
public class UserOperatedEvent  implements Event{

	public static final String EVENT_TYPE="userOperated";
	
	public String getEventType() {
		return EVENT_TYPE;
	}
	
	/**
	 * 以uuid来做标签，可以用来查找日志文件中的详细日志参数
	 */
	String tag;
	
	/**
	 * 产生日志的用户
	 */
    String username;

    String remoteAddr;

    String moduleName;
    
    /**
     * 日志描述
     */
    String operationDesc;

	/**
	 * 将请求的URL持久化，相比存储请求参数，url包含信息少，更安全，
	 * 在rest请求（例如delete、get、）中，URL包含了必要的ID参数
	 */
    String requestUri;

    /**
     * 运行的方法
     */
    String method;
    
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    LocalDateTime createdAt;

    
}
